Developer --> Technical Publications
PATHHardware Documentation > USB Devices > Mac OS USB DDK API Reference


Pipe State Control Functions

A pipe's state is governed by two factors:

The USL state can be one of the following:

A transaction error (errors -6915 to -6901) causes the pipe to enter the stalled state. The class driver can change the state of the pipe using the functions in this section.

Note that the pipe and interface control functions differ from most other USL calls in these two ways:

Also note that pipe 0 to a device cannot be stalled. If a communication error happens on pipe 0, the stall is automatically cleared before the call completes. Thus some of these functions can affect a device's default pipe 0 and some can't. Those functions that operate on both the default pipe 0 and pipes other than pipe 0, take a device reference for the default pipe or a pipe reference for a specific pipe. Those functions that can't affect the default pipe, take only a pipe reference.

These calls can be used on a device's default pipe 0:

USBGetPipeStatusByReference
USBAbortPipeByReference
USBResetPipeByReference

These calls cannot be used on a device's default pipe 0:

USBClearPipeStallByReference
USBSetPipeIdleByReference

Except for entering the stalled state on an error, the USL does not keep track of the state of the device's endpoint. The class driver must keep track of the state of the endpoint.

Data Toggle Synchronization

USBGetPipeStatusByReference

USBAbortPipeByReference

USBResetPipeByReference

USBClearPipeStallByReference

USBSetPipeIdleByReference

USBSetPipeActiveByReference

USBResetDevice


© 1999 Apple Computer, Inc.

Previous | Back Up One Level | Next | Show Frames | Hide Frames